package com.ruoyi.rms.mapper;

import java.util.List;
import com.ruoyi.rms.domain.DishesMessage;
import org.apache.ibatis.annotations.Param;

/**
 * 菜品信息Mapper接口
 * 
 * @author wyl
 * @date 2024-03-07
 */
public interface DishesMessageMapper 
{
    /**
     * 查询菜品信息
     * 
     * @param dishesId 菜品信息主键
     * @return 菜品信息
     */
    public DishesMessage selectDishesMessageByDishesId(Long dishesId);

    /**
     * 基于推荐方式 查询菜品信息
     * @return
     */
    public List<DishesMessage> selectDishesByRecommend();

    /**
     * 查询各菜品的平均下单量和所在订单的平均得分
     */
    public List<DishesMessage> selectDishesWithOrderNumAndScore();

    /**
     * 分组查询菜品和总销量
     * @return
     */
    public List<DishesMessage> selectByDishesIdAndAccount();

    /**
     * 查询菜品信息列表
     * 
     * @param dishesMessage 菜品信息
     * @return 菜品信息集合
     */
    public List<DishesMessage> selectDishesMessageList(DishesMessage dishesMessage);

    /**
     * 根据类别和状态查询菜品信息
     * @param categoryId
     * @param status
     * @return
     */
    public List<DishesMessage> selectDishesMessageListByCategoryAndStatus(@Param("categoryId") Long categoryId, @Param("status") String status);

    /**
     * 新增菜品信息
     * 
     * @param dishesMessage 菜品信息
     * @return 结果
     */
    public int insertDishesMessage(DishesMessage dishesMessage);

    /**
     * 修改菜品信息
     * 
     * @param dishesMessage 菜品信息
     * @return 结果
     */
    public int updateDishesMessage(DishesMessage dishesMessage);

    /**
     * 删除菜品信息
     * 
     * @param dishesId 菜品信息主键
     * @return 结果
     */
    public int deleteDishesMessageByDishesId(Long dishesId);

    /**
     * 批量删除菜品信息
     * 
     * @param dishesIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDishesMessageByDishesIds(Long[] dishesIds);
}
